﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace GrayParrot.Web.Formly
{
    [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
    public enum FormFieldTypes
    {
        [EnumMember(Value = "input")]
        Input = 0,
        [EnumMember(Value = "textarea")]
        Textarea,
        [EnumMember(Value = "checkbox")]
        Checkbox,
        [EnumMember(Value = "asyncMultiCheckBox")]
        MultiCheckbox,
        [EnumMember(Value = "asyncRadio")]
        Radio,
        [EnumMember(Value = "asyncselect")]
        Select,
        [EnumMember(Value = "inputnumber")]
        Number,
        [EnumMember(Value = "repeatsection")]
        RepeatSection,
        [EnumMember(Value = "datepicker")]
        Datepicker,
        [EnumMember(Value = "timepicker")]
        Timepicker,
        [EnumMember(Value = "maskedInput")]
        MaskedInput,
        [EnumMember(Value = "dateTimePicker")]
        DateTimepicker,
        [EnumMember(Value = "ui-select-single-search")]
        UISelect2,
        [EnumMember(Value = "image")]
        Image,
        [EnumMember(Value = "upload")]
        Upload,
        [EnumMember(Value = "grayParrotDateTimePicker")]
        GrayParrotDateTimePicker,
        [EnumMember(Value = "grayParrotFileUpload")]
        GrayParrotFileUpload
    }

    [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
    public enum InputFieldTypes
    {
        [EnumMember(Value = "Email")]
        Email = 0,
        [EnumMember(Value = "Number")]
        Number,
        [EnumMember(Value = "Password")]
        Password,
        [EnumMember(Value = "Range")]
        Range,
        [EnumMember(Value = "Date")]
        Date,
        [EnumMember(Value = "Time")]
        Time,
        [EnumMember(Value = "DateTime")]
        DateTime
    }

    [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
    public enum TextFieldBehaviors
    {
        [EnumMember(Value = "Text")]
        Text = 0,
        [EnumMember(Value = "Password")]
        Password,
        [EnumMember(Value = "Email")]
        Email,
        [EnumMember(Value = "Hidden")]
        Hidden
    }
}
